The Bluetooth communications protocol is a system for short-range wireless communication between devices.
In a typical scenario a Bluetooth enabled device A wishes to communicate with similarly enabled device B using a Bluetooth connection. In a traditional configuration communication cannot take place at the first instance where the devices are in range to do so. Namely device A does not a priori know of the presence of device B and therefore can not communicate with it. A flow chart of the process for establishing communications is shown in FIG. 1. At step 102 device A executes a scan-associate process at the time communications are requested. This scan-associate process is often a time consuming process with times of up to a couple of minutes being common. The presence of device B is established at step 104. With the presence of device B established a virtual serial port is created in device A at step 106 and at step 108 communications are initiated between device A and B.
FIG. 2 is a schematic diagram of a Bluetooth enabled Device A 202 that may have been used in the above method. Along with some hardware the diagram presents functional components involved in the Bluetooth communications, where the functional components are elements of software or states created by software that interact with the hardware of the device 202.
An application 204 operating within Device A 202 requests Bluetooth communications with Device B 203. A Bluetooth stack 210 may be provided either within or in addition to the operating system of the device 202. The stack 210 implements various layers of Bluetooth functionality, it provides RFComm protocol implementation to simulate serial port functionality of a Bluetooth radio 212 and it provides SDP implementation to do discovery and searching of Bluetooth devices and services.
A user uses the Bluetooth manager 208 to activate a connection to a remote device such as the Device B 203. The Bluetooth manager 208 then interacts with the Bluetooth stack 210, which creates a virtual serial port. A Bluetooth Manager 208 is in communications with the stack 210 and executes independently of it. The Bluetooth manager 208 is appropriate for providing an interface between a user and the stack 210. In this example the virtual serial port BSP2: 206 is opened. The Bluetooth stack 210 receives the data from the application 204, via the virtual serial port 206, and provides it to the Bluetooth radio 212.
In another system of the art an automatic scan-associate process is performed periodically to determine Bluetooth devices that are available for communications. Once it is determined that communications would be possible for a particular device it is added to a list of devices available for communications. In the above system the list of possible devices is not configurable by the user.
There are also systems in the art for which the availability of Bluetooth communications is advantageous yet it is not desirable to have the system “discoverable” during a scan-associate process. Such a situation may arise for systems located in public spaces. In this scenario one does not want the Bluetooth functionality visible to any member of the public, which has access to the system and has the ability to scan for a Bluetooth enabled device contained therein.
Thus there is a need for a system that does not require a scan-associate process at the time of communications, provides a user configurable list of devices with which communications may be established and does not require the system to identify itself as “discoverable” to other Bluetooth enabled devices.